1. Field of the Invention
The present invention relates to a data communication apparatus that performs data communication with a partner apparatus through a communication line, and, in particular, to a data communication apparatus that performs data communication with a partner apparatus through a serial interface based on IEEE (The Institute of Electrical and Electronics Engineers, Inc.) 1394.
2. Related Art Statement
As a serial interface realizing high speed data transfer, has been proposed IEEE1394. In comparison with SCSI (Small Computer System Interface) that has been conventionally used as an interface between a computer and its peripheral devices, IEEE1394 has various advantages. For example, IEEE1394 supports automatic allocation of respective IDs of connected devices or disconnection of a connected device while it is connected to the power source (so-called hot swap).
In IEEE1394, the automatic allocation of ID to each connected device (node) is realized as follows.
Namely, first, each node recognizes itself as a “branch” connected to two or more nodes, or a “leaf” connected to only one node. Next, each node sends a parent—notify signal after a lapse of a predetermined time, in turn starting from a node that has recognized itself as a “leaf”. On the other hand, a node that has recognized itself as a “branch” sends a child—notify signal to a node from which a parent—notify signal is received before the former sends a parent—notify signal. Thus, decision of parent-child relationships between nodes proceeds, to identify a tree structure having a root, i.e., a node that has recognized itself as a “branch” to which all the nodes are connected as children (Tree Identification).
Next, after the identification of the tree structure, each node sends, in prescribed turn, a self-packet including a physical—ID used by itself and management information, to open his own basic information to the other nodes. Here, into the physical—ID, is written the number of times self-packets are sent. In other words, a node that sends self-packet in the first place enters “0” in his physical ID, a node that sends self-packet in the second place enters “1” in the physical ID. By this arrangement, IDs used by respective nodes are automatically allocated (Self-recognition).
Further, according to IEEE1394, hot swap is realized as follows. Namely, when a new node is connected while connection topology of the bus is supervised, then, each node cancels information on the topology, and the tree identification and self-recognition are carried out again to perform automatic allocation of IDs of respective nodes (Bus Reset).
According to IEEE1394, during the bus reset, data communication between nodes is not carried out. Owing to this, when bus reset arises during data transfer, operation of a connected device is likely to be affected in a case where continuity (here, meaning not continuity from the viewpoint of time but continuity from the viewpoint of data itself) is required.
For example, in a case where data of high real-time property is transmitted, such as when a television broadcast signal received by a television receiver is sent to a monitor via an IEEE1394 interface to display, there appears such a symptom that a screen on the monitor is interrupted during bus reset. In other words, the television broadcast signal received by the television receiver during the bus reset can not be seen. In this case, subsequent monitor operation is not affected. After completion of the bus reset, the television broadcast signal received by the television receiver can be displayed on the monitor in real time, as before the bus reset.
However, for example, in a case where a program prepared by a computer is transferred to a storage device via an IEEE1394 interface or where print data prepared in a computer is transferred to a printer via an IEEE1394 interface, if data continuity is not ensured between before and after a break of data transfer owing to a bus reset, the transferred data loses its meaning.
In other words, when even a part of program data is lost, that program is not valid, and a computer can not execute that program. Further, print data includes a code formed of a data sequence of several bytes such that meaning of data following the code is defined by that code. Accordingly, when such a code is lost, illegal characters appear in the printed result.
For that reason, some technique adopts an idea that, when a bus reset arises while data is transferred through an IEEE1394 serial interface, and if the data in question requires data continuity such as program data or print data, then the transfer of the data in question is tried again from the beginning.